package com.ruoyi.material.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.constant.material.PurchaseConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 仓库库存对象 tb_warehouse_stock
 *
 * @author wng
 * @date 2024-08-04
 */
public class WarehouseStock extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 食品/食品添加剂/农产品/食品相关 名称
     */
    @Excel(name = "食品/食品添加剂/农产品/食品相关 名称")
    private String name;

    /**
     * 数量
     */
    @Excel(name = "数量")
    private BigDecimal quantity;

    /**
     * 单位
     */
    @Excel(name = "单位")
    private String unit;

    /**
     * 生产日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date produceTime;

    /**
     * 过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireTime;

    /**
     * 食品类型
     * Food 食品
     * FoodFarm 食用农产品
     * FoodAdd 食品添加剂
     * FoodRelate 食品相关
     */
//    @Excel(name = "食品类型 " +
//            "Food 食品 " +
//            "FoodFarm 食用农产品 " +
//            "FoodAdd 食品添加剂 " +
//            "FoodRelate 食品相关")
    private PurchaseConstants.FoodTypeEnum fType;

    /**
     * 食品子类型
     */
//    @Excel(name = "食品子类型")
    private Long fTypeSub;

    /**
     * 是否进口 0非进口 1进口
     */
    @Excel(name = "是否进口 0非进口 1进口")
    private Integer whetherImport;

    /**
     * 0正常 1删除
     */
    private Integer delFlag;
    /**
     * 食品类型名称
     */
    @Excel(name = "食品类型名称")
    private String fTypeName;
    /**
     * 食品子类型名称
     */
    @Excel(name = "食品子类型名称")
    private String fTypeSubName;



    public String getfTypeName() {
        return fTypeName;
    }

    public void setfTypeName(String fTypeName) {
        this.fTypeName = fTypeName;
    }

    public String getfTypeSubName() {
        return fTypeSubName;
    }

    public void setfTypeSubName(String fTypeSubName) {
        this.fTypeSubName = fTypeSubName;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setQuantity(BigDecimal quantity) {
        this.quantity = quantity;
    }

    public BigDecimal getQuantity() {
        return quantity;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnit() {
        return unit;
    }

    public void setProduceTime(Date produceTime) {
        this.produceTime = produceTime;
    }

    public Date getProduceTime() {
        return produceTime;
    }

    public void setExpireTime(Date expireTime) {
        this.expireTime = expireTime;
    }

    public Date getExpireTime() {
        return expireTime;
    }

    public PurchaseConstants.FoodTypeEnum getfType() {
        return fType;
    }

    public void setfType(PurchaseConstants.FoodTypeEnum fType) {
        this.fType = fType;
    }

    public void setfTypeSub(Long fTypeSub) {
        this.fTypeSub = fTypeSub;
    }

    public Long getfTypeSub() {
        return fTypeSub;
    }

    public void setWhetherImport(Integer whetherImport) {
        this.whetherImport = whetherImport;
    }

    public Integer getWhetherImport() {
        return whetherImport;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("deptId", getDeptId())
                .append("name", getName())
                .append("quantity", getQuantity())
                .append("unit", getUnit())
                .append("produceTime", getProduceTime())
                .append("expireTime", getExpireTime())
                .append("fType", getfType())
                .append("fTypeSub", getfTypeSub())
                .append("whetherImport", getWhetherImport())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
